/*
 * @lc app=leetcode.cn id=1423 lang=java
 *
 * [1423] 可获得的最大点数
 */

// @lc code=start
class Solution {
    //有点像dp，看了一眼评论大概懂了，不用dp可以整出来
    //先全部拿左边，然后一个一个把拿的牌的最右边的牌去掉，拿右边的牌，维护最大值
    public int maxScore(int[] cardPoints, int k) {
        int sum = 0 ;
        for (int i = 0; i < k; i++) {
            sum+=cardPoints[i];
        }
        int temp = sum;
        for(int i=k-1,j=cardPoints.length-1; i>=0 ;i--,j--){//i左指针，j右指针
            temp = temp-cardPoints[i]+cardPoints[j];
            sum = Math.max(sum, temp);
        }
        return sum;
    }
}
// @lc code=end

